[SQL 1] mysql 계정 생성, DB 권한 다루기
🛡️

[SQL 1] mysql 계정 생성, DB 권한 다루기

Lecture
CS
태그
cs
mysql
sql
public
완성
Y
생성일
Mar 17, 2024 05:54 PM
LectureName
MySQL

1. 사용자 추가

사용자
➡️ 개념
DBMS를 이용하려면 해당 DB에 접속할 수 있는 계정이 필요하다. 해당 계정은 MySQL의 기본 데이터베이스인 mysql db → user에 저장된다.
 
➡️ 생성 방법
  1. 유저 생성
CREATE user {userid}@{local}; CREATE user {userid}@{local} identified by '비밀번호'; #기존에 사용하던 계정에 외부 접근 권한 부여 %는 외부접근 허용 CREATE user '{userid}'@'% identified by '비밀번호';
 
  1. user table에 직접 입력
USE mysql; // mysql database 선택 INSERT INTO user (Host, User, Password) VALUES ('localhost', '계정아이디', password('비밀번호')); INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호')); FLUSH privileges;
 

2. 권한

권한 부여
➡️ mysql 권한?
  • MySQL은 사용자 이름, 비밀번호, 접속 호스트로 여러분을 인증한다.
  • MySQL은 로그인을 시도하는 위치가 어디인가 하는 것도 인증의 일부로 간주한다.
  • MySQL 에서 사용자 계정을 추가하고 권한을 추가하거나 제거하는 데 GRANT 와 REVOKE 명령을 사용하기를 권장한다.
  • 사용자에게 허가된 것을 확인하려면 SHOW GRANTS 를 사용한다.
 
➡️ 권한 부여( 모든 권한 )
GRANT ALL privileges ON DB명.* TO 계정아이디@locahost; GRANT ALL privileges ON DB명.* TO 계정아이디@'%'; flush privileges; grant all privileges on shop.* to 'shop'@'%' identified by '1234'; flush privileges;
  • 끝에 IDENTIFIED BY ‘비밀번호’ 를 입력하면 비밀번호가 변경된다.
  • %은 모든 원격지이다. IP를 입력해도 되고 192.168.% 형식으로 해도 된다.
  • flush는 mysql에 지금까지 한 작업을 적용시키는 것이라고 할 수 있다.
 
➡️ 권한 부여 ( 특정 권한 )
# 특정 데이터베이스의 특정 테이블에 select 권한을 줌 grant select on DB이름.테이블명 to '사용자'@'localhost'; # 특정 데이터베이스의 특정 테이블에 select, insert 권한을 줌 grant select, insert on DB이름.테이블명 to '사용자'@'localhost'; # 특정 데이터베이스의 특정 테이블의 컬럼1과 컬럼2의 update 권한을 줌 grant update(컬럼1, 컬럼2) on DB이름.테이블명 to '사용자'@'localhost';
 
➡️ 권한 부여와 동시에 사용자 생성
grant all privileges on *.* to '사용자'@'localhost' identified by '비밀번호'; # example grant all privileges on *.* to 'test'@'localhost' identified by '0000';
 
 
 
권한 취소
➡️ mysql 권한 취소
  • 사용자 계정을 삭제할 때는 DROP USER 를 사용하면 된다.
  • 사용자 계정을 삭제한다고해서 권한이 같이 삭제되지 않으므로 권한도 함께 삭제해야 한다.
 
➡️ 권한 취소 ( 모든 권한 )
REVOKE ALL ON DB명.* FROM 계정아이디@localhost; REVOKE ALL ON DB명.* FROM 계정아이디@'%'; flush privileges;
 
➡️ 권한 취소 ( 특정 권한 )
# 특정 데이터베이스의 특정 테이블에 select 권한 취소 revoke select on DB이름.테이블명 from '사용자'@'localhost'; # 특정 데이터베이스의 특정 테이블에 select, insert 권한 취소 revoke select, insert on DB이름.테이블명 from '사용자'@'localhost'; # 특정 데이터베이스의 특정 테이블의 컬럼1과 컬럼2의 update 권한 취소 revoke update(컬럼1, 컬럼2) on DB이름.테이블명 from '사용자'@'localhost';
 
권한 확인
➡️ 권한 확인
SHOW GRANTS FOR '사용자'@'접근위치'

3. 사용자

➡️계정 삭제
DROP USER '사용자'@'localhost';
  • 사용자 계정을 삭제한다고해서 권한이 같이 삭제되지 않으므로 권한도 함께 삭제해야 한다.